package com.lb.manager;

import com.alibaba.fastjson.JSONObject;
import com.lb.base.util.AliasMethod;
import com.lb.client.ClientConfiguration;
import com.lb.dao.DaoConfiguration;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

/**
 * 通用逻辑层配置类
 *
 * @author libin
 * @since 1.0
 */
@Configuration
@Import({ClientConfiguration.class, DaoConfiguration.class})
public class ManagerConfiguration {
    public static void main(String[] args) {
        // 抽样器 <概率数组位置索引, 抽中次数>
        List<Double> props = new ArrayList<>();
        props.add(0.0009);
        props.add(0.0019);
        props.add(0.0029);
        props.add(0.0039);
        props.add(0.0049);
        props.add(0.0059);
        props.add(0.0069);
        props.add(0.0079);
        props.add(0.0089);
        props.add(0.0099);
        props.add(0.001);
        props.add(1 - props.stream().reduce(0.0, Double::sum));
        props.forEach(System.out::println);
        Map<Integer, Integer> indexTimes = AliasMethod.sampling(3344, props);
        System.out.println(JSONObject.toJSONString(indexTimes));
    }
}